<template>
  <div class="page gear">
    <div class="gearbox">
      <div class="small">
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="snode"></div>
        <div class="scenter"></div>
      </div>
      <div class="big">
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bnode"></div>
        <div class="bcenter"></div>
      </div>
    </div>
  </div>
</template>
<script setup>
import {} from "vue";
</script>
<style lang="scss">
.gear {
  .gearbox {
    margin-top: 50px;
    min-width: 335px;
    overflow: hidden;
    padding: 10px;
    display: inline-block;
    transform: rotateZ(45deg) scale(.5);
    /* border: 2px solid #cccccc; */
  }
  .gearbox > div {
    box-sizing: border-box;
    position: relative;
    float: left;
    border: 5px solid #666666;
    animation-play-state: paused;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
  }
  .gearbox:hover > div {
    animation-play-state: running;
  }
  .small {
    top: 50px;
    height: 100px;
    width: 100px;
    border-radius: 50px;
    animation-name: gear-left;
    animation-duration: 3s;
  }
  .big {
    margin-left: 10px;
    height: 200px;
    width: 200px;
    border-radius: 100px;
    animation-name: gear-right;
    animation-duration: 6s;
  }
  .scenter {
    position: absolute;
    height: 20px;
    width: 20px;
    left: 35px;
    top: 35px;
    background-color: #666666;
    border-radius: 10px;
  }
  .bcenter {
    position: absolute;
    height: 40px;
    width: 40px;
    left: 75px;
    top: 75px;
    background-color: #666666;
    border-radius: 20px;
  }
  @keyframes gear-left {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  @keyframes gear-right {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(-360deg);
    }
  }
  .snode,
  .bnode {
    position: absolute;
    height: 10px;
    width: 16px;
    background-color: #666666;
    border-radius: 8px 8px 0 0;
  }
  .snode {
    left: 37px;
    transform-origin: 8px 60px;
    top: -15px;
  }
  .snode:nth-child(1) {
    transform: rotateZ(36deg);
  }
  .snode:nth-child(2) {
    transform: rotateZ(72deg);
  }
  .snode:nth-child(3) {
    transform: rotateZ(108deg);
  }
  .snode:nth-child(4) {
    transform: rotateZ(144deg);
  }
  .snode:nth-child(5) {
    transform: rotateZ(180deg);
  }
  .snode:nth-child(6) {
    transform: rotateZ(-36deg);
  }
  .snode:nth-child(7) {
    transform: rotateZ(-72deg);
  }
  .snode:nth-child(8) {
    transform: rotateZ(-108deg);
  }
  .snode:nth-child(9) {
    transform: rotateZ(-144deg);
  }
  .bnode {
    left: 87px;
    transform-origin: 8px 109px;
    top: -14px;
  }
  .bnode:nth-child(1) {
    transform: rotateZ(18deg);
  }
  .bnode:nth-child(2) {
    transform: rotateZ(36deg);
  }
  .bnode:nth-child(3) {
    transform: rotateZ(54deg);
  }
  .bnode:nth-child(4) {
    transform: rotateZ(72deg);
  }
  .bnode:nth-child(5) {
    transform: rotateZ(90deg);
  }
  .bnode:nth-child(6) {
    transform: rotateZ(108deg);
  }
  .bnode:nth-child(7) {
    transform: rotateZ(126deg);
  }
  .bnode:nth-child(8) {
    transform: rotateZ(144deg);
  }
  .bnode:nth-child(9) {
    transform: rotateZ(162deg);
  }
  .bnode:nth-child(10) {
    transform: rotateZ(180deg);
  }
  .bnode:nth-child(11) {
    transform: rotateZ(-18deg);
  }
  .bnode:nth-child(12) {
    transform: rotateZ(-36deg);
  }
  .bnode:nth-child(13) {
    transform: rotateZ(-54deg);
  }
  .bnode:nth-child(14) {
    transform: rotateZ(-72deg);
  }
  .bnode:nth-child(15) {
    transform: rotateZ(-90deg);
  }
  .bnode:nth-child(16) {
    transform: rotateZ(-108deg);
  }
  .bnode:nth-child(17) {
    transform: rotateZ(-126deg);
  }
  .bnode:nth-child(18) {
    transform: rotateZ(-144deg);
  }
  .bnode:nth-child(19) {
    transform: rotateZ(-162deg);
  }
}
</style>